//package com.modifiertech.lineage.client.gui.ftbint;
//
//import com.feed_the_beast.ftblib.lib.gui.Panel;
//import com.feed_the_beast.ftblib.lib.gui.Theme;
//import com.feed_the_beast.ftblib.lib.gui.Widget;
//import com.feed_the_beast.ftblib.lib.icon.Icon;
//import com.feed_the_beast.ftblib.lib.icon.ImageIcon;
//import com.modifiertech.lineage.BaseConst;
//import net.minecraft.client.renderer.BufferBuilder;
//import net.minecraft.client.renderer.GlStateManager;
//import net.minecraft.client.renderer.Tessellator;
//
//public class PanelSkill extends Panel {
//    private static final ImageIcon DEFAULT_DEPENDENCY_LINE_TEXTURE = (ImageIcon) Icon.getIcon(BaseConst.MODID + ":textures/gui/dependency.png");
//    public final GuiLineage guiLineage;
//    public double questX = 0;
//    public double questY = 0;
//    public double centerQuestX = 0;
//    public double centerQuestY = 0;
////    public ButtonQuest mouseOverQuest = null;
//    public double questMinX, questMinY, questMaxX, questMaxY;
//
//    public PanelSkill(Panel panel) {
//        super(panel);
//        guiLineage= (GuiLineage) panel.getGui();
//    }
//
//    public void updateMinMax(){
//        questMinX = Double.POSITIVE_INFINITY;
//        questMinY = Double.POSITIVE_INFINITY;
//        questMaxX = Double.NEGATIVE_INFINITY;
//        questMaxY = Double.NEGATIVE_INFINITY;
//        for(Widget w:widgets){
//            double qx,qy,qw,qh;
//            //若为技能按钮
//            if(w instanceof ButtonSkill){
//                SkillInfo skillInfo=((ButtonSkill) w).getSkillInfo();
//                qx=skillInfo.x;
//                qy=skillInfo.y;
//                qw=skillInfo.size;
//                qh=skillInfo.size;
//            }else {
//                continue;
//            }
//            questMinX = Math.min(questMinX, qx - qw / 2D);
//            questMinY = Math.min(questMinY, qy - qh / 2D);
//            questMaxX = Math.max(questMaxX, qx + qw / 2D);
//            questMaxY = Math.max(questMaxY, qy + qh / 2D);
//        }
//        if (questMinX == Double.POSITIVE_INFINITY)
//        {
//            questMinX = questMinY = questMaxX = questMaxY = 0D;
//        }
//
//        questMinX -= 40D;
//        questMinY -= 30D;
//        questMaxX += 40D;
//        questMaxY += 30D;
//    }
//
//    /**缩放至
//     *
//     * @param x
//     * @param y
//     */
//    public void scrollTo(double x, double y)
//    {
//        updateMinMax();
//
//        double dx = (questMaxX - questMinX);
//        double dy = (questMaxY - questMinY);
//
//        setScrollX((x - questMinX) / dx * guiLineage.scrollWidth - width / 2D);
//        setScrollY((y - questMinY) / dy * guiLineage.scrollHeight - height / 2D);
//    }
//
//    /**重置缩放内容
//     *
//     */
//    public void resetScroll()
//    {
//        alignWidgets();
//        setScrollX((guiLineage.scrollWidth - width) / 2D);
//        setScrollY((guiLineage.scrollHeight - height) / 2D);
//    }
//
//    @Override
//    public void addWidgets() {
//        for(SkillInfo skillInfo :guiLineage.skillInfos){
//            add(new ButtonSkill(this,skillInfo));
//        }
//        alignWidgets();
//    }
//
//    @Override
//    public void alignWidgets() {
//        guiLineage.scrollWidth = 0D;
//        guiLineage.scrollHeight = 0D;
//        updateMinMax();
//
//        double bs = guiLineage.getSkillButtonSize();
//        double bp = guiLineage.getSkillButtonSpacing();
//
//        guiLineage.scrollWidth = (questMaxX - questMinX) * (bs + bp);
//        guiLineage.scrollHeight = (questMaxY - questMinY) * (bs + bp);
//        for (Widget w : widgets)
//        {
//            double qx, qy, qw, qh;
//
//            if (w instanceof ButtonSkill)
//            {
//                SkillInfo skillInfo=((ButtonSkill) w).getSkillInfo();
//                qx=skillInfo.x;
//                qy=skillInfo.y;
//                qw=skillInfo.size;
//                qh=skillInfo.size;
//            }
//            else
//            {
//                continue;
//            }
//
//            double x = (qx - questMinX - qw / 2D) * (bs + bp) + bp / 2D + bp * (qw - 1D) / 2D;
//            double y = (qy - questMinY - qh / 2D) * (bs + bp) + bp / 2D + bp * (qh - 1D) / 2D;
//            w.setPosAndSize((int) x, (int) y, (int) (bs * qw), (int) (bs * qh));
//        }
//        setPosAndSize(20, 1, guiLineage.width - 40, guiLineage.height - 2);
//    }
//
//    @Override
//    public void drawOffsetBackground(Theme theme, int x, int y, int w, int h) {
//        GlStateManager.color(1F, 1F, 1F, 1F);
//        Tessellator tessellator = Tessellator.getInstance();
//        BufferBuilder buffer = tessellator.getBuffer();
//        Icon icon = DEFAULT_DEPENDENCY_LINE_TEXTURE;
//        icon.bindTexture();
//        //icon
//
//
//
//
//
//
//
//
////        super.drawOffsetBackground(theme, x, y, w, h);
//    }
//}
